/**
 * 
 */
package MediciADistanza.Boundary.Database;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * Buondary per connettersi a un database SQLite
 * <b>Il codice in parte &egrave; stato preso dalla rete!!</b>
 * 
 * @author Andrea Iann&igrave;
 *
 */
public class UserSQLiteBoundary {
	/**
	 * Connessione col database
	 */
	protected Connection c;
	
	/**
	 * Crea o apre un database
	 * @param dbName	Nome del database
	 * @return			Restituisce l'esito dell'operazione
	 */
	public boolean connect(String dbName)  {
	    c = null;
	    try {
	      Class.forName("org.sqlite.JDBC");
	      c = DriverManager.getConnection("jdbc:sqlite:test.db");
	      System.out.println("Opened database successfully");
	      return true;
	    } catch ( Exception e ) {
	      System.err.println( e.getClass().getName() + ": " + e.getMessage() );
	      return false;
	    }
	}
	/**
	 * Chiude la connessione col database
	 * 
	 * @return 	Restituisce l'esito dell'operazione
	 */
	public boolean close() {
		if (c!=null){
			try {
				c.close();
				return true;
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				return false;
			}
		}
		else return false;
	}
	/**
	 * Esegue un query sql personalizzata
	 * @param sql	SQL da eseguire
	 * @return		Esito operazione
	 */
	public boolean excuteSQL(String sql) {
		Statement statement;
		try {
			statement = c.createStatement();
			statement.execute(sql);
			statement.close();
			return true;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return false;
		}
	}
}
